package tech.aistar.design.proxy.demo1;

import tech.aistar.day04.User;

/**
 * 本类用来演示: 被代理的对象 - 目标对象
 *
 * 扩展日志输出的功能
 *
 * @author: success
 * @date: 2022/8/4 2:59 下午
 */
public class UserDaoImpl implements UserDao {
    @Override
    public int add(int i, int j) {
        //直接在原有的对象中进行直接的修改了.违背了软件的开闭原则

        //弊端
        //1. 日志输出/验证功能 - 与核心业务无关的功能 -
        //   造成业务方法的"臃肿"

        //2. 日志输出的目标/验证的规则 一旦需要改变 - 改动会非常 - 不便于后期的维护
        //System.out.println("log-before...");
        int result = i + j;//核心业务
        //System.out.println("log-after...");
        return result;
    }

    @Override
    public int sub(int i, int j) {
        int result = i - j;
        return result;
    }
}
